1. The Field of the Invention
The present invention extends to both methods and systems for rendering images. In particular, the present invention relates to selecting different anti-aliasing filters to be applied to objects of image data rendered with pixel sub-component precision based on the attributes of the rendered object.
2. Background and Relevant Art
Graphics images are typically stored at sufficiently high resolutions to allow for faithful rendering of the characters of the graphics image such that the human eye cannot perceive irregularities or distortions in the characters, assuming that the display device on which the images are displayed has a sufficiently high resolution. Liquid crystal display (LCD) devices are one of the most common types of display devices on which images can be displayed. The complexity and manufacturing requirements of LCD display devices are such that the resolution of typical LCD display devices is lower than the resolution supported by many graphics formats.
LCD display devices generally include a series of pixels arranged in rows and columns. Each pixel includes colored pixel sub-components that together are used to create variations in the luminosity and hue of the pixel. Typically, LCD display devices have pixel sub-components that are aligned in vertical (or less commonly, horizontal) stripes of same-colored elements, although other patterns exist. When text characters are rendered on an LCD screen, the pixels are assigned a luminosity and hue to depict the background and foreground colors of the characters. The number of pixels on a display device and the size of the device determine the resolution of the display device. When graphics images are rendered at the lower resolutions of typical LCD display devices, distortions in the rendered image become noticeable, particularly at the edges of the characters of the image data. Such variations and distortions in the rendered character include aliasing. Aliasing arises from high spatial frequencies of the original image aliasing down to low spatial frequencies on the display. Aliasing causes the edges of characters to appear jagged or stair-stepped. The jagged or stair-stepped appearance resulting from aliasing is often most apparent on the diagonal or curved portions of characters of an image where the edge of the character approaches horizontal. Aliasing is also most apparent on display devices that do not provide a sufficient number of pixels to accurately represent such portions of characters.
A variety of anti-aliasing techniques have been developed to compensate for the distortions created in rendering images on lower resolution display devices. The traditional method of anti-aliasing, often referred to as gray scaling, blurs the edges of the aliased characters. While the edges of anti-aliased characters are depicted with less clarity, the aliasing in the images becomes less perceptible to the human eye. As a result, the image appears to be more accurately rendered. Another technique that has been utilized to minimize the distortions of aliased images is pixel sub-component precision rendering applied in the direction perpendicular to the stripes of same-colored pixel sub-components of the LCD display device. In particular, individual pixel sub-components are used as separate luminous intensity sources with different portions of the image being mapped to the individual pixel sub-components of the pixels. This technique improves the resolution of the image in the direction perpendicular to the stripes and enables character edges to be placed at boundaries between pixel sub-components. Accordingly, this rendering process reduces the aliasing effect for character features that are nearly vertical, but does not have an appreciable effect in reducing aliasing in features that are nearly horizontal.
The degree to which aliasing is apparent on characters rendered utilizing pixel sub-component positioning as described above depends in part on the font size of the character being rendered. Smaller font sizes tend to exhibit less visible aliasing, while characters displayed using larger fonts can appear uneven and jagged.
FIG. 1A illustrates how pixel sub-component precision rendering can result in large font characters having uneven or jagged edges in regions of the characters that are nearly horizontal. A portion of a display device 1 is illustrated having a grid of pixels 2, on which a portion of a character 4 is displayed. Curvilinear segments 4a represent the underlying image data that is processed to display the character, while segments 4b represent the boundaries of the image that are displayed on display device as a result of segments 4a. Character 4 is depicted at a large font size typical of headline fonts sizes of 25 points or greater. Each pixel 2 has three pixel sub-components (e.g., red, green, and blue pixel sub-components), and each pixel sub-component is separately controlled to represent spatially different portions of the character, which results in increased resolution in the horizontal direction. However, because the resolution is relatively lower in the vertical direction, and because the characters having large font sizes tend to have diagonal edges that are aligned in a nearly horizontal orientation over large numbers of pixels (e.g., portion 8), aliasing effects in the vertical direction can be quite pronounced.
With reference now to FIG. 1B, a second character 6 is displayed with sub-pixel precision on the grid of pixels 2. The second character 6 is depicted at a small font size, such as is often used for rendering text. Curvilinear segments 6a represent the underlying image data that is processed to display the character, while segments 6b represent the boundaries of the image that is displayed on display device as a result of segments 6a. Because characters rendered in smaller fonts tend to have smaller radii of curvature and portions thereof that are nearly horizontal tend to span fewer pixels, the jaggedness of nearly horizontal portions of smaller characters is often a less noticeable problem as shown in FIG. 1B.
For the larger font size character 4 of FIG. 1A or the smaller font size character 6 of FIG. 1B, anti-aliasing filters in the vertical direction can be applied to reduce perceived aliasing effects in the vertical direction. One such anti-aliasing technique is gray scaling, which results in pixel sub-components at the edges of the characters having a luminous intensity between that of the foreground and background color. While gray scaling reduces the perception of aliasing, it also blurs the character edges. For characters that have relatively wide character features, such as character 4 of FIG. 1A, blurring of the edges is not a significant problem, since boundary pixel sub-components represent a relatively small proportion of the pixel subcomponents used to render the character. However, for smaller characters, such as character 6 of FIG. 1B, blurring the edges of the characters can result in making the character difficult to see. Thus, applying conventional anti-aliasing techniques to characters, such as characters 4 and 6, result in poorly defined small font characters, whereas applying no anti-aliasing to such characters results in noticeable aliasing in large font characters.